/**
 *  创建工具函数
 */
const Utils = {

    /**
     * 
     * @param  tag  所要创建的元素标签
     * @param  container  存放创建好的元素的容器
     * @param  attribute   对创建后的元素进行处理的函数
     */
    createElem(tag, container, attribute) {
        const elem = document.createElement(tag);
        container.appendChild(elem);
        attribute(elem);
    }
}

/**
 * Create By YangHUiJun
 */

/**
 * 定义Game的构造函数
 */
const Game = function () {
    //获取界面容器
    let container = document.querySelector("#app");
    let score = document.querySelector("#score");
    let game_result = document.querySelector("#game_result");
    //创建View对象
    let view = new View(container,score,game_result);
    //初始化界面
    view.init();

    //创建Board对象
    let board = new Board();
    //初始化数组数据
    board.datainit();

    //在界面添加两个初始数字元素
    board.findZero(view);
    board.findZero(view);

    //设置键盘事件
    $(document).keydown(function (e) {
        switch (e.which) {//判断游戏是否是胜利或失败状态，不是才能继续移动棋子
            case 37: if(board.WIN_OR_FAIL === 0){ board.moveLeft(view); } break;
            case 38: if(board.WIN_OR_FAIL === 0){ board.moveUp(view); } break;
            case 39: if(board.WIN_OR_FAIL === 0){ board.moveRight(view); } break;
            case 40: if(board.WIN_OR_FAIL === 0){ board.moveDown(view); } break;
        }
    });
    //重新开始
    $('.restart').click(function(){
        //移除所有的数字模块
        $('.num').remove();
        //更改界面上的分数为0
        $(view.score).text(0);
        //隐藏游戏结果框
        $(view.game_result).text("").css({'background':'','color':""}).animate({height: 1},600);
        //重置属性
        view.nums = {};
        board.score = 0;
        board.WIN_OR_FAIL = 0;
        board.datainit();
        board.findZero(view);
        board.findZero(view);
    });
}
/**
 * Create By YangHUiJun
 */


